package com.youlu.campus.base.interactive;

import com.youlu.campus.base.base.EntityBase;
import lombok.Data;
import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.index.Indexed;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * 活动基础信息
 *
 * @author: zhuhuaiqi
 * @date: 2021/02/22 17:22
 */
@Data
public class ActivityBase extends EntityBase {

    /**
     * 活动名称
     */
    @Indexed
    private String name;
    /**
     * 副标题
     */
    private String desc;

    /**
     * 活动封面
     */
    private String imageUrl;

    /**
     * 活动详情
     */
    private String detail;

    /**
     * 活动规则
     */
    private String rule;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 活动报名按钮名称
     */
    private String buttonName;
    /**
     * 优先级,数字越大，优先级越高
     */
    private Integer priority=1;
    /**
     * 配置的参与人数
     */
    private Integer configParticipants = 1000;
    /**
     * 实际的参与人数
     */
    private Integer participants;
    /**
     * 奖励发放开始时间
     */
    private Date incentivesStartTime;
    /**
     * 奖励发放结束时间
     */
    private Date incentivesEndTime;
    /**
     * 活动公告
     */
    private List<String> announcements = new ArrayList<String>();
    /**
     * 活动阶段数
     */
    private Integer phase;
    /**
     * 阶段规则,<K,<K1,V>>,例子:<1阶段10人,基础证书编号>
     */
    private HashMap<Integer, Integer> phaseRules = new HashMap<Integer, Integer>();
    /**
     * 奖励内容状态,默认为TRUE,开启
     */
    private Boolean rewardsStatus = Boolean.TRUE;
    /**
     * 奖励内容
     */
    private String rewardsContent;
    /**
     * 奖励内容图片
     */
    private List<String> rewardsContentImageUrls = new ArrayList<String>();
    /**
     * QQ 群
     */
    private List<String> qqGroups = new ArrayList<String>();
    /**
     * 足迹例子,答题的助力不要了
     */
    private List<String> footPrintExg = new ArrayList<String>();
    /**
     * 时长,单位是小时,获得证书就累计
     */
    private Integer duration;
    /**
     * 排行榜文案,图片
     */
    private String rankingListImageUrl;
    /**
     * 排行榜文案内容
     */
    private String rankingListContent;
    /**
     * 是否参与
     */
    @Transient
    private Boolean joined = Boolean.FALSE;
    /**
     * 是否置顶
     */
    @Transient
    private Boolean onTop = Boolean.FALSE;


}
